﻿using System;
using System.Collections.Generic;

using System.Text;

namespace Rance.Battle
{
    class 千乘旋风1: 攻击技能
    {
        public int Level = -1;
        public int 基础几率 = 18;
        public decimal 智力系数 = 2.5m;

        public 千乘旋风1()
        {
            this.可被守护 = true;
            this.技能速度 = 140;
            this.能否被反击 = true;
            this.物理系 = true;
            this.技能目标 = Battle.技能目标.最前列任一;
            this.消耗行动点 = Battle.消耗行动点.两点;
            this.打断系数 = 40;
            this.伤害系数 = 1.2m;
            this.技能站位要求 = Battle.技能站位要求.前列;
        }

        public override void Excute(技能环境 环境)
        {
            base.Excute(环境);

            赋予 诅咒 = new 赋予()
            {
                Level = Level,
                是否单回合 = false
            };

            诅咒Behavior behavior = new 诅咒Behavior();
            环境.行动结果.ResultList.Add(behavior);

            foreach (var 角色 in 环境.目标List)
            {
                角色Struct 角色Struct = new Battle.角色Struct() { ID = 角色.ID, Name = 角色.Name };
                List<string> 赋予list = new List<string>();
                behavior.List.Add(new 诅咒BehaviorDetail() { 角色 = 角色Struct, List = 赋予list });

                int 几率 = Convert.ToInt32(基础几率 + 环境.施放者.实际智 * 智力系数);

                if (环境.队伍状况.战场.乱数表.Hit(几率))
                {
                    if (角色.Set攻击诅咒(诅咒))
                    {
                        赋予list.Add("攻击");
                    }
                }

                if (环境.队伍状况.战场.乱数表.Hit(几率))
                {
                    if (角色.Set防御诅咒(诅咒))
                    {
                        赋予list.Add("防御");
                    }
                }

                if (环境.队伍状况.战场.乱数表.Hit(几率))
                {
                    if (角色.Set速度诅咒(诅咒))
                    {
                        赋予list.Add("速度");
                    }
                }

                if (环境.队伍状况.战场.乱数表.Hit(几率))
                {
                    if (角色.Set智力诅咒(诅咒))
                    {
                        赋予list.Add("智力");
                    }
                }
            }
        }
    }

    class 千乘旋风2 : 千乘旋风1
    {
        public 千乘旋风2() {
            Level = -2;
        }
    }
}
